home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / Slots.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  17KB  |  579 lines

  1. /*
  2.      File:        Slots.h
  3.  
  4.      Contains:    Slot Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __SLOTS__
  19. #define __SLOTS__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __EVENTS__
  25. #include <Events.h>
  26. #endif
  27. #ifndef __OSUTILS__
  28. #include <OSUtils.h>
  29. #endif
  30. #ifndef __FILES__
  31. #include <Files.h>
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if PRAGMA_IMPORT_SUPPORTED
  39. #pragma import on
  40. #endif
  41.  
  42. #if PRAGMA_ALIGN_SUPPORTED
  43. #pragma options align=mac68k
  44. #endif
  45.  
  46. #if FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED
  47.  
  48. enum {
  49.     fCardIsChanged                = 1,                            /*Card is Changed field in StatusFlags field of sInfoArray*/
  50.     fCkForSame                    = 0,                            /*For SearchSRT. Flag to check for SAME sResource in the table. */
  51.     fCkForNext                    = 1,                            /*For SearchSRT. Flag to check for NEXT sResource in the table. */
  52.     fWarmStart                    = 2                                /*If this bit is set then warm start else cold start.*/
  53. };
  54.  
  55.  
  56. enum {
  57.     stateNil                    = 0,                            /*State*/
  58.     stateSDMInit                = 1,                            /*:Slot declaration manager Init*/
  59.     statePRAMInit                = 2,                            /*:sPRAM record init*/
  60.     statePInit                    = 3,                            /*:Primary init*/
  61.     stateSInit                    = 4,                            /*:Secondary init*/
  62.                                                                 /* flags for spParamData */
  63.     fall                        = 0,                            /* bit 0: set=search enabled/disabled sRsrc's */
  64.     foneslot                    = 1,                            /*    1: set=search sRsrc's in given slot only */
  65.     fnext                        = 2,                            /*    2: set=search for next sRsrc */
  66.                                                                 /* Misc masks */
  67.     catMask                        = 0x08,                            /* sets spCategory field of spTBMask (bit 3) */
  68.     cTypeMask                    = 0x04,                            /* sets spCType    field of spTBMask (bit 2) */
  69.     drvrSWMask                    = 0x02,                            /* sets spDrvrSW   field of spTBMask (bit 1) */
  70.     drvrHWMask                    = 0x01                            /* sets spDrvrHW      field of spTBMask (bit 0) */
  71. };
  72.  
  73. /*
  74.         This ProcPtr uses register based parameters on the 68k and cannot
  75.         be written in or called from a high-level language without the help of
  76.         mixed mode or assembly glue.
  77.  
  78.             typedef pascal short (*SlotIntServiceProcPtr)(long sqParameter);
  79.  
  80. */
  81.  
  82. #if GENERATINGCFM
  83. typedef UniversalProcPtr SlotIntServiceUPP;
  84. #else
  85. typedef Register68kProcPtr SlotIntServiceUPP;
  86. #endif
  87.  
  88. enum {
  89.     uppSlotIntServiceProcInfo = kRegisterBased
  90.          | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  91.          | REGISTER_RESULT_LOCATION(kRegisterD0)
  92.          | REGISTER_ROUTINE_PARAMETER(1, kRegisterA1, SIZE_CODE(sizeof(long)))
  93. };
  94.  
  95. #if GENERATINGCFM
  96. #define NewSlotIntServiceProc(userRoutine)        \
  97.         (SlotIntServiceUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSlotIntServiceProcInfo, GetCurrentArchitecture())
  98. #else
  99. #define NewSlotIntServiceProc(userRoutine)        \
  100.         ((SlotIntServiceUPP) (userRoutine))
  101. #endif
  102.  
  103. #if GENERATINGCFM
  104. #define CallSlotIntServiceProc(userRoutine, sqParameter)        \
  105.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSlotIntServiceProcInfo, (sqParameter))
  106. #else
  107. /* (*SlotIntServiceUPP) cannot be called from a high-level language without the Mixed Mode Manager */
  108. #endif
  109. struct SlotIntQElement {
  110.     Ptr                             sqLink;                        /*ptr to next element*/
  111.     short                             sqType;                        /*queue type ID for validity*/
  112.     short                             sqPrio;                        /*priority*/
  113.     SlotIntServiceUPP                 sqAddr;                        /*interrupt service routine*/
  114.     long                             sqParm;                        /*optional A1 parameter*/
  115. };
  116. typedef struct SlotIntQElement SlotIntQElement;
  117.  
  118. typedef SlotIntQElement *SQElemPtr;
  119. struct SpBlock {
  120.     long                             spResult;                    /*FUNCTION Result*/
  121.     Ptr                             spsPointer;                    /*structure pointer*/
  122.     long                             spSize;                        /*size of structure*/
  123.     long                             spOffsetData;                /*offset/data field used by sOffsetData*/
  124.     Ptr                             spIOFileName;                /*ptr to IOFile name for sDisDrvrName*/
  125.     Ptr                             spsExecPBlk;                /*pointer to sExec parameter block.*/
  126.     long                             spParamData;                /*misc parameter data (formerly spStackPtr).*/
  127.     long                             spMisc;                        /*misc field for SDM.*/
  128.     long                             spReserved;                    /*reserved for future expansion*/
  129.     short                             spIOReserved;                /*Reserved field of Slot Resource Table*/
  130.     short                             spRefNum;                    /*RefNum*/
  131.     short                             spCategory;                    /*sType: Category*/
  132.     short                             spCType;                    /*Type*/
  133.     short                             spDrvrSW;                    /*DrvrSW*/
  134.     short                             spDrvrHW;                    /*DrvrHW*/
  135.     SInt8                             spTBMask;                    /*type bit mask bits 0..3 mask words 0..3*/
  136.     SInt8                             spSlot;                        /*slot number*/
  137.     SInt8                             spID;                        /*structure ID*/
  138.     SInt8                             spExtDev;                    /*ID of the external device*/
  139.     SInt8                             spHwDev;                    /*Id of the hardware device.*/
  140.     SInt8                             spByteLanes;                /*bytelanes from card ROM format block*/
  141.     SInt8                             spFlags;                    /*standard flags*/
  142.     SInt8                             spKey;                        /*Internal use only*/
  143. };
  144. typedef struct SpBlock SpBlock;
  145.  
  146. typedef SpBlock *SpBlockPtr;
  147. struct SInfoRecord {
  148.     Ptr                             siDirPtr;                    /*Pointer to directory*/
  149.     short                             siInitStatusA;                /*initialization E*/
  150.     short                             siInitStatusV;                /*status returned by vendor init code*/
  151.     SInt8                             siState;                    /*initialization state*/
  152.     SInt8                             siCPUByteLanes;                /*0=[d0..d7] 1=[d8..d15]*/
  153.     SInt8                             siTopOfROM;                    /*Top of ROM= $FssFFFFx: x is TopOfROM*/
  154.     SInt8                             siStatusFlags;                /*bit 0 - card is changed*/
  155.     short                             siTOConst;                    /*Time Out C for BusErr*/
  156.     SInt8                             siReserved[2];                /*reserved*/
  157.     Ptr                             siROMAddr;                    /* addr of top of ROM */
  158.     SInt8                             siSlot;                        /* slot number */
  159.     SInt8                             siPadding[3];                /* reserved */
  160. };
  161. typedef struct SInfoRecord SInfoRecord;
  162.  
  163. typedef SInfoRecord *SInfoRecPtr;
  164. struct SDMRecord {
  165.     ProcPtr                         sdBEVSave;                    /*Save old BusErr vector*/
  166.     ProcPtr                         sdBusErrProc;                /*Go here to determine if it is a BusErr*/
  167.     ProcPtr                         sdErrorEntry;                /*Go here if BusErrProc finds real BusErr*/
  168.     long                             sdReserved;                    /*Reserved*/
  169. };
  170. typedef struct SDMRecord SDMRecord;
  171.  
  172. struct FHeaderRec {
  173.     long                             fhDirOffset;                /*offset to directory*/
  174.     long                             fhLength;                    /*length of ROM*/
  175.     long                             fhCRC;                        /*CRC*/
  176.     SInt8                             fhROMRev;                    /*revision of ROM*/
  177.     SInt8                             fhFormat;                    /*format - 2*/
  178.     long                             fhTstPat;                    /*test pattern*/
  179.     SInt8                             fhReserved;                    /*reserved*/
  180.     SInt8                             fhByteLanes;                /*ByteLanes*/
  181. };
  182. typedef struct FHeaderRec FHeaderRec;
  183.  
  184. typedef FHeaderRec *FHeaderRecPtr;
  185. /*
  186.  
  187.      Extended Format header block  -  extended declaration ROM format header for super sRsrc directories.    <H2><SM0>
  188.  
  189. */
  190. struct XFHeaderRec {
  191.     long                             fhXSuperInit;                /*Offset to SuperInit SExecBlock    <fhFormat,offset>*/
  192.     long                             fhXSDirOffset;                /*Offset to SuperDirectory            <$FE,offset>*/
  193.     long                             fhXEOL;                        /*Psuedo end-of-list                <$FF,nil>*/
  194.     long                             fhXSTstPat;                    /*TestPattern*/
  195.     long                             fhXDirOffset;                /*Offset to (minimal) directory*/
  196.     long                             fhXLength;                    /*Length of ROM*/
  197.     long                             fhXCRC;                        /*CRC*/
  198.     SInt8                             fhXROMRev;                    /*Revision of ROM*/
  199.     SInt8                             fhXFormat;                    /*Format-2*/
  200.     long                             fhXTstPat;                    /*TestPattern*/
  201.     SInt8                             fhXReserved;                /*Reserved*/
  202.     SInt8                             fhXByteLanes;                /*ByteLanes*/
  203. };
  204. typedef struct XFHeaderRec XFHeaderRec;
  205.  
  206. typedef XFHeaderRec *XFHeaderRecPtr;
  207. struct SEBlock {
  208.     UInt8                             seSlot;                        /*Slot number.*/
  209.     UInt8                             sesRsrcId;                    /*sResource Id.*/
  210.     short                             seStatus;                    /*Status of code executed by sExec.*/
  211.     UInt8                             seFlags;                    /*Flags*/
  212.     UInt8                             seFiller0;                    /*Filler, must be SignedByte to align on odd boundry*/
  213.     UInt8                             seFiller1;                    /*Filler*/
  214.     UInt8                             seFiller2;                    /*Filler*/
  215.     long                             seResult;                    /*Result of sLoad.*/
  216.     long                             seIOFileName;                /*Pointer to IOFile name.*/
  217.     UInt8                             seDevice;                    /*Which device to read from.*/
  218.     UInt8                             sePartition;                /*The partition.*/
  219.     UInt8                             seOSType;                    /*Type of OS.*/
  220.     UInt8                             seReserved;                    /*Reserved field.*/
  221.     UInt8                             seRefNum;                    /*RefNum of the driver.*/
  222.     UInt8                             seNumDevices;                /* Number of devices to load.*/
  223.     UInt8                             seBootState;                /*State of StartBoot code.*/
  224.     SInt8                             filler;
  225. };
  226. typedef struct SEBlock SEBlock;
  227.  
  228. /*  Principle  */
  229.  
  230. #if GENERATING68K && !GENERATINGCFM
  231. #pragma parameter __D0 SReadByte(__A0)
  232. #endif
  233. extern pascal OSErr SReadByte(SpBlockPtr spBlkPtr)
  234.  TWOWORDINLINE(0x7000, 0xA06E);
  235.  
  236.  
  237. #if GENERATING68K && !GENERATINGCFM
  238. #pragma parameter __D0 SReadWord(__A0)
  239. #endif
  240. extern pascal OSErr SReadWord(SpBlockPtr spBlkPtr)
  241.  TWOWORDINLINE(0x7001, 0xA06E);
  242.  
  243.  
  244. #if GENERATING68K && !GENERATINGCFM
  245. #pragma parameter __D0 SReadLong(__A0)
  246. #endif
  247. extern pascal OSErr SReadLong(SpBlockPtr spBlkPtr)
  248.  TWOWORDINLINE(0x7002, 0xA06E);
  249.  
  250.  
  251. #if GENERATING68K && !GENERATINGCFM
  252. #pragma parameter __D0 SGetCString(__A0)
  253. #endif
  254. extern pascal OSErr SGetCString(SpBlockPtr spBlkPtr)
  255.  TWOWORDINLINE(0x7003, 0xA06E);
  256.  
  257.  
  258. #if GENERATING68K && !GENERATINGCFM
  259. #pragma parameter __D0 SGetBlock(__A0)
  260. #endif
  261. extern pascal OSErr SGetBlock(SpBlockPtr spBlkPtr)
  262.  TWOWORDINLINE(0x7005, 0xA06E);
  263.  
  264.  
  265. #if GENERATING68K && !GENERATINGCFM
  266. #pragma parameter __D0 SFindStruct(__A0)
  267. #endif
  268. extern pascal OSErr SFindStruct(SpBlockPtr spBlkPtr)
  269.  TWOWORDINLINE(0x7006, 0xA06E);
  270.  
  271.  
  272. #if GENERATING68K && !GENERATINGCFM
  273. #pragma parameter __D0 SReadStruct(__A0)
  274. #endif
  275. extern pascal OSErr SReadStruct(SpBlockPtr spBlkPtr)
  276.  TWOWORDINLINE(0x7007, 0xA06E);
  277.  
  278. /*  Special  */
  279.  
  280. #if GENERATING68K && !GENERATINGCFM
  281. #pragma parameter __D0 SReadInfo(__A0)
  282. #endif
  283. extern pascal OSErr SReadInfo(SpBlockPtr spBlkPtr)
  284.  TWOWORDINLINE(0x7010, 0xA06E);
  285.  
  286.  
  287. #if GENERATING68K && !GENERATINGCFM
  288. #pragma parameter __D0 SReadPRAMRec(__A0)
  289. #endif
  290. extern pascal OSErr SReadPRAMRec(SpBlockPtr spBlkPtr)
  291.  TWOWORDINLINE(0x7011, 0xA06E);
  292.  
  293.  
  294. #if GENERATING68K && !GENERATINGCFM
  295. #pragma parameter __D0 SPutPRAMRec(__A0)
  296. #endif
  297. extern pascal OSErr SPutPRAMRec(SpBlockPtr spBlkPtr)
  298.  TWOWORDINLINE(0x7012, 0xA06E);
  299.  
  300.  
  301. #if GENERATING68K && !GENERATINGCFM
  302. #pragma parameter __D0 SReadFHeader(__A0)
  303. #endif
  304. extern pascal OSErr SReadFHeader(SpBlockPtr spBlkPtr)
  305.  TWOWORDINLINE(0x7013, 0xA06E);
  306.  
  307.  
  308. #if GENERATING68K && !GENERATINGCFM
  309. #pragma parameter __D0 SNextSRsrc(__A0)
  310. #endif
  311. extern pascal OSErr SNextSRsrc(SpBlockPtr spBlkPtr)
  312.  TWOWORDINLINE(0x7014, 0xA06E);
  313.  
  314.  
  315. #if GENERATING68K && !GENERATINGCFM
  316. #pragma parameter __D0 SNextTypeSRsrc(__A0)
  317. #endif
  318. extern pascal OSErr SNextTypeSRsrc(SpBlockPtr spBlkPtr)
  319.  TWOWORDINLINE(0x7015, 0xA06E);
  320.  
  321.  
  322. #if GENERATING68K && !GENERATINGCFM
  323. #pragma parameter __D0 SRsrcInfo(__A0)
  324. #endif
  325. extern pascal OSErr SRsrcInfo(SpBlockPtr spBlkPtr)
  326.  TWOWORDINLINE(0x7016, 0xA06E);
  327.  
  328.  
  329. #if GENERATING68K && !GENERATINGCFM
  330. #pragma parameter __D0 SDisposePtr(__A0)
  331. #endif
  332. extern pascal OSErr SDisposePtr(SpBlockPtr spBlkPtr)
  333.  TWOWORDINLINE(0x7017, 0xA06E);
  334.  
  335.  
  336. #if GENERATING68K && !GENERATINGCFM
  337. #pragma parameter __D0 SCkCardStat(__A0)
  338. #endif
  339. extern pascal OSErr SCkCardStat(SpBlockPtr spBlkPtr)
  340.  TWOWORDINLINE(0x7018, 0xA06E);
  341.  
  342.  
  343. #if GENERATING68K && !GENERATINGCFM
  344. #pragma parameter __D0 SReadDrvrName(__A0)
  345. #endif
  346. extern pascal OSErr SReadDrvrName(SpBlockPtr spBlkPtr)
  347.  TWOWORDINLINE(0x7019, 0xA06E);
  348.  
  349.  
  350. #if GENERATING68K && !GENERATINGCFM
  351. #pragma parameter __D0 SFindSRTRec(__A0)
  352. #endif
  353. extern pascal OSErr SFindSRTRec(SpBlockPtr spBlkPtr)
  354.  TWOWORDINLINE(0x701A, 0xA06E);
  355.  
  356.  
  357. #if GENERATING68K && !GENERATINGCFM
  358. #pragma parameter __D0 SFindDevBase(__A0)
  359. #endif
  360. extern pascal OSErr SFindDevBase(SpBlockPtr spBlkPtr)
  361.  TWOWORDINLINE(0x701B, 0xA06E);
  362.  
  363.  
  364. #if GENERATING68K && !GENERATINGCFM
  365. #pragma parameter __D0 SFindBigDevBase(__A0)
  366. #endif
  367. extern pascal OSErr SFindBigDevBase(SpBlockPtr spBlkPtr)
  368.  TWOWORDINLINE(0x701C, 0xA06E);
  369.  
  370. /*  Advanced  */
  371.  
  372. #if GENERATING68K && !GENERATINGCFM
  373. #pragma parameter __D0 InitSDeclMgr(__A0)
  374. #endif
  375. extern pascal OSErr InitSDeclMgr(SpBlockPtr spBlkPtr)
  376.  TWOWORDINLINE(0x7020, 0xA06E);
  377.  
  378.  
  379. #if GENERATING68K && !GENERATINGCFM
  380. #pragma parameter __D0 SPrimaryInit(__A0)
  381. #endif
  382. extern pascal OSErr SPrimaryInit(SpBlockPtr spBlkPtr)
  383.  TWOWORDINLINE(0x7021, 0xA06E);
  384.  
  385.  
  386. #if GENERATING68K && !GENERATINGCFM
  387. #pragma parameter __D0 SCardChanged(__A0)
  388. #endif
  389. extern pascal OSErr SCardChanged(SpBlockPtr spBlkPtr)
  390.  TWOWORDINLINE(0x7022, 0xA06E);
  391.  
  392.  
  393. #if GENERATING68K && !GENERATINGCFM
  394. #pragma parameter __D0 SExec(__A0)
  395. #endif
  396. extern pascal OSErr SExec(SpBlockPtr spBlkPtr)
  397.  TWOWORDINLINE(0x7023, 0xA06E);
  398.  
  399.  
  400. #if GENERATING68K && !GENERATINGCFM
  401. #pragma parameter __D0 SOffsetData(__A0)
  402. #endif
  403. extern pascal OSErr SOffsetData(SpBlockPtr spBlkPtr)
  404.  TWOWORDINLINE(0x7024, 0xA06E);
  405.  
  406.  
  407. #if GENERATING68K && !GENERATINGCFM
  408. #pragma parameter __D0 SInitPRAMRecs(__A0)
  409. #endif
  410. extern pascal OSErr SInitPRAMRecs(SpBlockPtr spBlkPtr)
  411.  TWOWORDINLINE(0x7025, 0xA06E);
  412.  
  413.  
  414. #if GENERATING68K && !GENERATINGCFM
  415. #pragma parameter __D0 SReadPBSize(__A0)
  416. #endif
  417. extern pascal OSErr SReadPBSize(SpBlockPtr spBlkPtr)
  418.  TWOWORDINLINE(0x7026, 0xA06E);
  419.  
  420.  
  421. #if GENERATING68K && !GENERATINGCFM
  422. #pragma parameter __D0 SCalcStep(__A0)
  423. #endif
  424. extern pascal OSErr SCalcStep(SpBlockPtr spBlkPtr)
  425.  TWOWORDINLINE(0x7028, 0xA06E);
  426.  
  427.  
  428. #if GENERATING68K && !GENERATINGCFM
  429. #pragma parameter __D0 SInitSRsrcTable(__A0)
  430. #endif
  431. extern pascal OSErr SInitSRsrcTable(SpBlockPtr spBlkPtr)
  432.  TWOWORDINLINE(0x7029, 0xA06E);
  433.  
  434.  
  435. #if GENERATING68K && !GENERATINGCFM
  436. #pragma parameter __D0 SSearchSRT(__A0)
  437. #endif
  438. extern pascal OSErr SSearchSRT(SpBlockPtr spBlkPtr)
  439.  TWOWORDINLINE(0x702A, 0xA06E);
  440.  
  441.  
  442. #if GENERATING68K && !GENERATINGCFM
  443. #pragma parameter __D0 SUpdateSRT(__A0)
  444. #endif
  445. extern pascal OSErr SUpdateSRT(SpBlockPtr spBlkPtr)
  446.  TWOWORDINLINE(0x702B, 0xA06E);
  447.  
  448.  
  449. #if GENERATING68K && !GENERATINGCFM
  450. #pragma parameter __D0 SCalcSPointer(__A0)
  451. #endif
  452. extern pascal OSErr SCalcSPointer(SpBlockPtr spBlkPtr)
  453.  TWOWORDINLINE(0x702C, 0xA06E);
  454.  
  455.  
  456. #if GENERATING68K && !GENERATINGCFM
  457. #pragma parameter __D0 SGetDriver(__A0)
  458. #endif
  459. extern pascal OSErr SGetDriver(SpBlockPtr spBlkPtr)
  460.  TWOWORDINLINE(0x702D, 0xA06E);
  461.  
  462.  
  463. #if GENERATING68K && !GENERATINGCFM
  464. #pragma parameter __D0 SPtrToSlot(__A0)
  465. #endif
  466. extern pascal OSErr SPtrToSlot(SpBlockPtr spBlkPtr)
  467.  TWOWORDINLINE(0x702E, 0xA06E);
  468.  
  469.  
  470. #if GENERATING68K && !GENERATINGCFM
  471. #pragma parameter __D0 SFindSInfoRecPtr(__A0)
  472. #endif
  473. extern pascal OSErr SFindSInfoRecPtr(SpBlockPtr spBlkPtr)
  474.  TWOWORDINLINE(0x702F, 0xA06E);
  475.  
  476.  
  477. #if GENERATING68K && !GENERATINGCFM
  478. #pragma parameter __D0 SFindSRsrcPtr(__A0)
  479. #endif
  480. extern pascal OSErr SFindSRsrcPtr(SpBlockPtr spBlkPtr)
  481.  TWOWORDINLINE(0x7030, 0xA06E);
  482.  
  483.  
  484. #if GENERATING68K && !GENERATINGCFM
  485. #pragma parameter __D0 SDeleteSRTRec(__A0)
  486. #endif
  487. extern pascal OSErr SDeleteSRTRec(SpBlockPtr spBlkPtr)
  488.  TWOWORDINLINE(0x7031, 0xA06E);
  489.  
  490. extern pascal OSErr OpenSlot(ParmBlkPtr paramBlock, Boolean async);
  491.  
  492.  
  493. #if GENERATING68K && !GENERATINGCFM
  494. #pragma parameter __D0 OpenSlotSync(__A0)
  495. #endif
  496. extern pascal OSErr OpenSlotSync(ParmBlkPtr paramBlock)
  497.  ONEWORDINLINE(0xA200);
  498.  
  499.  
  500. #if GENERATING68K && !GENERATINGCFM
  501. #pragma parameter __D0 OpenSlotAsync(__A0)
  502. #endif
  503. extern pascal OSErr OpenSlotAsync(ParmBlkPtr paramBlock)
  504.  ONEWORDINLINE(0xA600);
  505.  
  506. /*  Device Manager Slot Support  */
  507.  
  508. #if GENERATING68K && !GENERATINGCFM
  509. #pragma parameter __D0 SIntInstall(__A0, __D0)
  510. #endif
  511. extern pascal OSErr SIntInstall(SQElemPtr sIntQElemPtr, short theSlot)
  512.  ONEWORDINLINE(0xA075);
  513.  
  514.  
  515. #if GENERATING68K && !GENERATINGCFM
  516. #pragma parameter __D0 SIntRemove(__A0, __D0)
  517. #endif
  518. extern pascal OSErr SIntRemove(SQElemPtr sIntQElemPtr, short theSlot)
  519.  ONEWORDINLINE(0xA076);
  520.  
  521.  
  522. #if GENERATING68K && !GENERATINGCFM
  523. #pragma parameter __D0 SVersion(__A0)
  524. #endif
  525. extern pascal OSErr SVersion(SpBlockPtr spBlkPtr)
  526.  TWOWORDINLINE(0x7008, 0xA06E);
  527.  
  528.  
  529. #if GENERATING68K && !GENERATINGCFM
  530. #pragma parameter __D0 SetSRsrcState(__A0)
  531. #endif
  532. extern pascal OSErr SetSRsrcState(SpBlockPtr spBlkPtr)
  533.  TWOWORDINLINE(0x7009, 0xA06E);
  534.  
  535.  
  536. #if GENERATING68K && !GENERATINGCFM
  537. #pragma parameter __D0 InsertSRTRec(__A0)
  538. #endif
  539. extern pascal OSErr InsertSRTRec(SpBlockPtr spBlkPtr)
  540.  TWOWORDINLINE(0x700A, 0xA06E);
  541.  
  542.  
  543. #if GENERATING68K && !GENERATINGCFM
  544. #pragma parameter __D0 SGetSRsrc(__A0)
  545. #endif
  546. extern pascal OSErr SGetSRsrc(SpBlockPtr spBlkPtr)
  547.  TWOWORDINLINE(0x700B, 0xA06E);
  548.  
  549.  
  550. #if GENERATING68K && !GENERATINGCFM
  551. #pragma parameter __D0 SGetTypeSRsrc(__A0)
  552. #endif
  553. extern pascal OSErr SGetTypeSRsrc(SpBlockPtr spBlkPtr)
  554.  TWOWORDINLINE(0x700C, 0xA06E);
  555.  
  556.  
  557. #if GENERATING68K && !GENERATINGCFM
  558. #pragma parameter __D0 SGetSRsrcPtr(__A0)
  559. #endif
  560. extern pascal OSErr SGetSRsrcPtr(SpBlockPtr spBlkPtr)
  561.  TWOWORDINLINE(0x701D, 0xA06E);
  562.  
  563. #endif
  564.  
  565. #if PRAGMA_ALIGN_SUPPORTED
  566. #pragma options align=reset
  567. #endif
  568.  
  569. #if PRAGMA_IMPORT_SUPPORTED
  570. #pragma import off
  571. #endif
  572.  
  573. #ifdef __cplusplus
  574. }
  575. #endif
  576.  
  577. #endif /* __SLOTS__ */
  578.  
  579.